#include <iostream>
#include <functional>

using namespace std;

/*
头文件中实现所有功能 所有函数不会被内联造成代码体积变大因为一般编译器只会内联较小的函数
声明和定义都写在一个文件里 每次include都会把这个类实现完整包含进去 但现代编译器会删除冗余在最终二进制程序只保留一份不会造成体积变大
*/

class Hpp
{
public:
    void foo()
    {
        cout << add(1,2) << endl;
    }

    std::function<int(int, int)> add = [&](int a, int b) { return a + b; }; //利用函数容器可以实现lambda的成员变量
};